package com.fowo.api.model.tmp.walmart.item;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 沃尔玛商品临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpWalmartItemImportPo {

  /** 店铺 */
  @ExcelProperty("店铺")
  @LongString(message = "店铺数值格式不正确", label = "店铺", min = 0L)
  private String sid;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String localSku;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 50, message = "品名长度不能超过50")
  private String localName;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** 商品ID */
  @ExcelProperty("商品ID")
  @Size(max = 50, message = "商品ID长度不能超过50")
  private String itemId;

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 5000, message = "标题长度不能超过5000")
  private String title;

  /** 生命周期状态 */
  @ExcelProperty("生命周期状态")
  @Size(max = 50, message = "生命周期状态长度不能超过50")
  private String lifecycleStatus;

  /** 发布状态 */
  @ExcelProperty("发布状态")
  @Size(max = 50, message = "发布状态长度不能超过50")
  private String publishedStatus;

  /** 状态变化的原因 */
  @ExcelProperty("状态变化的原因")
  private String statusChangeReason;

  /** 商品类别 */
  @ExcelProperty("商品类别")
  @Size(max = 50, message = "商品类别长度不能超过50")
  private String productCategory;

  /** 价格 */
  @ExcelProperty("价格")
  @DecimalString(message = "价格小数格式不正确", label = "价格")
  private String priceAmount;

  /** 价格币种 */
  @ExcelProperty("价格币种")
  @Size(max = 50, message = "价格币种长度不能超过50")
  private String priceCurrency;

  /** Buy Box 价格 */
  @ExcelProperty("Buy Box 价格")
  @DecimalString(message = "Buy Box 价格小数格式不正确", label = "Buy Box 价格")
  private String buyBoxItemPrice;

  /** Buy Box 运费 */
  @ExcelProperty("Buy Box 运费")
  @DecimalString(message = "Buy Box 运费小数格式不正确", label = "Buy Box 运费")
  private String buyBoxShippingPrice;

  /** 是否Buy Box */
  @ExcelProperty("是否Buy Box")
  @Size(max = 50, message = "是否Buy Box长度不能超过50")
  private String buyBoxEligible;

  /** MSRP */
  @ExcelProperty("MSRP")
  @Size(max = 50, message = "MSRP长度不能超过50")
  private String msrp;

  /** 商品税号 */
  @ExcelProperty("商品税号")
  @Size(max = 50, message = "商品税号长度不能超过50")
  private String productTaxCode;

  /** 运输方法 */
  @ExcelProperty("运输方法")
  @Size(max = 50, message = "运输方法长度不能超过50")
  private String shipMethods;

  /** 商品重量 */
  @ExcelProperty("商品重量")
  @DecimalString(message = "商品重量小数格式不正确", label = "商品重量")
  private String shippingWeight;

  /** 重量单位 */
  @ExcelProperty("重量单位")
  @Size(max = 50, message = "重量单位长度不能超过50")
  private String shippingWeightUnit;

  /** 发货时限 */
  @ExcelProperty("发货时限")
  @IntegerString(message = "发货时限数值格式不正确", label = "发货时限")
  private String fulfillmentLagTime;

  /** 发货方式 */
  @ExcelProperty("发货方式")
  @Size(max = 50, message = "发货方式长度不能超过50")
  private String fulfillmentType;

  /** WFS销售限制 */
  @ExcelProperty("WFS销售限制")
  @Size(max = 50, message = "WFS销售限制长度不能超过50")
  private String wfsSalesRestriction;

  /** 沃尔玛产品ID */
  @ExcelProperty("沃尔玛产品ID")
  @Size(max = 50, message = "沃尔玛产品ID长度不能超过50")
  private String wpid;

  /** GTIN */
  @ExcelProperty("GTIN")
  @Size(max = 50, message = "GTIN长度不能超过50")
  private String gtin;

  /** UPC */
  @ExcelProperty("UPC")
  @Size(max = 50, message = "UPC长度不能超过50")
  private String upc;

  /** 商品页面地址 */
  @ExcelProperty("商品页面地址")
  @Size(max = 1000, message = "商品页面地址长度不能超过1000")
  private String itemPageUrl;

  /** 主图地址 */
  @ExcelProperty("主图地址")
  @Size(max = 1000, message = "主图地址长度不能超过1000")
  private String primaryImageUrl;

  /** 货架名称 */
  @ExcelProperty("货架名称")
  @Size(max = 50, message = "货架名称长度不能超过50")
  private String shelfName;

  /** 商品类别路径 */
  @ExcelProperty("商品类别路径")
  @Size(max = 500, message = "商品类别路径长度不能超过500")
  private String primaryCategoryPath;

  /** 品牌 */
  @ExcelProperty("品牌")
  @Size(max = 50, message = "品牌长度不能超过50")
  private String brand;

  /** 销售开始日期 */
  @ExcelProperty("销售开始日期")
  @DateString(message = "销售开始日期不是有效的日期格式")
  private String offerStartDate;

  /** 销售结束日期 */
  @ExcelProperty("销售结束日期")
  @DateString(message = "销售结束日期不是有效的日期格式")
  private String offerEndDate;

  /** 商品创建时间 */
  @ExcelProperty("商品创建时间")
  @DateString(message = "商品创建时间不是有效的日期格式")
  private String itemCreationDate;

  /** 商品更新时间 */
  @ExcelProperty("商品更新时间")
  @DateString(message = "商品更新时间不是有效的日期格式")
  private String itemLastUpdated;

  /** 评论数 */
  @ExcelProperty("评论数")
  @IntegerString(message = "评论数数值格式不正确", label = "评论数")
  private String reviewsCount;

  /** 评分 */
  @ExcelProperty("评分")
  @Size(max = 50, message = "评分长度不能超过50")
  private String averageRating;

  /** 可搜索 */
  @ExcelProperty("可搜索")
  @Size(max = 50, message = "可搜索长度不能超过50")
  private String searchable;

  /** 变体组ID */
  @ExcelProperty("变体组ID")
  @Size(max = 50, message = "变体组ID长度不能超过50")
  private String variantGroupId;

  /** 是否主变体 */
  @ExcelProperty("是否主变体")
  @Size(max = 50, message = "是否主变体长度不能超过50")
  private String primaryVariant;

  /** 变体组属性 */
  @ExcelProperty("变体组属性")
  @Size(max = 1000, message = "变体组属性长度不能超过1000")
  private String variantGroupingAttributes;

  /** 变体属性值 */
  @ExcelProperty("变体属性值")
  @Size(max = 1000, message = "变体属性值长度不能超过1000")
  private String variantGroupingValues;

  /** 竞争商品网站 */
  @ExcelProperty("竞争商品网站")
  @Size(max = 1000, message = "竞争商品网站长度不能超过1000")
  private String competitorUrl;

  /** 竞争商品价格 */
  @ExcelProperty("竞争商品价格")
  @DecimalString(message = "竞争商品价格小数格式不正确", label = "竞争商品价格")
  private String competitorPrice;

  /** 竞争商品运费 */
  @ExcelProperty("竞争商品运费")
  @DecimalString(message = "竞争商品运费小数格式不正确", label = "竞争商品运费")
  private String competitorShipPrice;

  /** 竞争信息更新时间 */
  @ExcelProperty("竞争信息更新时间")
  @DateString(message = "竞争信息更新时间不是有效的日期格式")
  private String competitorLastDateFetched;

  /** 定价策略 */
  @ExcelProperty("定价策略")
  @Size(max = 50, message = "定价策略长度不能超过50")
  private String repricerStrategy;

  /** 卖方最低限价 */
  @ExcelProperty("卖方最低限价")
  @DecimalString(message = "卖方最低限价小数格式不正确", label = "卖方最低限价")
  private String minimumSellerAllowedPrice;

  /** 卖方最高限价 */
  @ExcelProperty("卖方最高限价")
  @DecimalString(message = "卖方最高限价小数格式不正确", label = "卖方最高限价")
  private String maximumSellerAllowedPrice;

  /** 重新定价状态 */
  @ExcelProperty("重新定价状态")
  @Size(max = 50, message = "重新定价状态长度不能超过50")
  private String repricerStatus;
}
